Everything about File Synchronization totally explained
File synchronization (or 'synching') in computing is the process of making sure that two or more locations contain the same up-to-date
files. If you add, change, or delete a file from one location, the synchronization process will add, change, or delete the same file at the other location.
File synchronization may be one-way or two-way. In a one-way sync, also called
mirroring, files are copied only from a 'source' location to a 'target' location, or locations, but no files are copied back to the source location. In two-way sync, files are copied in both directions, keeping the two locations in sync with each other. The term synchronization is used in this article to mean exclusively two-way synchronization, in contrast with 'mirroring'.
File synchronization maintains the same version of files on multiple locations, normally
directories on a computer or removable storage devices such as
USB flash drives. In other words, when two locations are synchronized, the most current version of a file is available at both locations, regardless of where it was last modified. File synchronization is useful for mobile workers, or others that work on multiple computers.
It can also be used for
backup purposes, although it isn't ideal for this.
Although it's possible to synchronize directories manually, using a software tool is both faster and less error prone.
Related tools
File synchronization tools are similar to
Version Control tools (
CVS,
Subversion, etc.),
distributed filesystems (
Coda, etc.), and
mirroring utilities (
rsync, etc.), in that all these attempt to keep sets of files synchronized. However, only version control and file synchronization tools can deal with modifications to more than one copy of the files.
Version control tools are intended to deal with situations where more than one person wants to simultaneously modify the same file, while file synchronizers are optimized for situations where only one copy of the file will be edited at a time. For this reason, although version control tools can be used for file synchronization, dedicated programs require less
overhead.
Distributed filesystems may also be seen as ensuring multiple versions of a file are synchronized. Unlike file synchronization, this is
transparent to the user, and normally requires that the devices the files are stored on are always connected.
Features
Advanced file synchronizers will compare the differences between the two locations and synchronize only the file differences, rather than re-copying the entire file. In cases where one location is remote, this requires a software agent, a
server, to be installed on the remote computer. A good sync program will also allow
encryption for
security, particularly when synchronizing across the
Internet.
Other advanced features include:
- Compressing any data sent across a network, again this requires a server.
- Being able to detect 'conflicts' where a file has been changed on both sources, as opposed to where it has only been changed on one. Not detecting conflicts, and instead overwriting the less recently edited file, can cause loss of data.
- Specific support for using an intermediate storage device, such as a removable flash disc, to synchronize two machines. Although most synchronizing programs can be used in this way, providing specific support for this can reduce the amount of data stored on the device.
- The ability to preview any changes before they're made.
- The ability to view differences in individual files.
It is possible to synchronize multiple locations by synchronizing them a pair at a time.
Programs
There are a very large number of file synchronization programs available, either as
open source,
freeware (closed-source), or commercial licenses.
Here's an incomplete list of file synchronization programs:
| name |
protocol |
language |
platforms |
license |
| rsync |
rsync |
|
Unix |
GPL |
| Unison |
similar to rsync; uses SSH as transport |
oCaml |
Windows, Linux, OS X, other Unix |
GPL |
| PowerFolder |
|
Java |
Windows, Linux, Mac OS X |
GPL |
| WinSCP |
(Secure) FTP |
C++ |
Windows |
GPL |
| CyberDuck |
(Secure) FTP |
|
Mac OS X |
GPL |
| iFolder |
|
|
Unix, Windows, Mac OS X |
GPL |
| JFileSync |
|
Java |
Java Virtual Machine |
GPL |
| Cobian Backup |
filesystem/FTP |
Delphi |
Windows |
MPL |
FullSync |
|
Java |
Windows |
GPL2 |
| OpenSync (PIM data) |
|
C |
Unix, Windows, Mac OS X |
LGPL |
| Conduit (generic framework) |
Many |
Python |
Linux, Unix |
GPL |
ActiveSync Microsoft, syncs mobile devices
FolderShare
Microsoft Sync Framework Microsoft, syncs files, data and services
Microsoft SyncToy
Windows Mobile Device Center
GoodSync (free version has trial period; after trial, features are limited)
Allway Sync
SyncBack (older version is freeware, newer version is commercial)
BestSync
Commercial
Robocopy
Synchromagic
SugarSync
ViceVersa Pro 2
SyncTogether
OS X only
ADCS
MobilitiFurther Information
Get more info on 'File Synchronization'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://file_synchronization.totallyexplained.com">File synchronization Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |